package com.gxa.service.user;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.gxa.dto.userdto.MenuDto;
import com.gxa.entity.user.SysMenu;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author Administrator
* @description 针对表【sys_menu(菜单表)】的数据库操作Service
* @createDate 2022-10-19 17:50:23
*/
public interface SysMenuService extends IService<SysMenu> {

    /**
     * 通过用户名得到用户所属菜单集合
     * @param username
     * @return
     */
    List<SysMenu> selectMenuListByUsername(String username);

    /**
     * 通过用户名得到用户所属菜单集合 树形数据
     * @param username
     * @return
     */
    List<SysMenu>  getUserMenu(String username);
    List<MenuDto>  mygetUserMenu(String username);

    /**
     * 前端为角色授权菜单的树数据
     * @return
     */
    List<SysMenu> getAllMenusWithTree();


    /**
     * 获得角色所具有菜单的ID集合
     * @param roleId 角色ID
     * @return
     */
    List<String> getRoleMenus(String roleId);

    /**
     * 菜单管理分页
     * @param currentPage 当前页
     * @param pageSize 分页数量
     * @param name 菜单名称
     * @param parentId 上级菜单ID
     * @return
     */
    IPage<SysMenu> getAllMenusTable(Integer currentPage, Integer pageSize, String name, String parentId);

    /**
     * 保存菜单
     * @param menu 菜单实体
     * @return
     */
    boolean saveOrUpdateMenu(SysMenu menu);

    /**
     * 删除菜单信息
     * @param id 菜单ID
     */
    void deleteMenus(String id);
}
